﻿//设置cookie
function setCookie(key, val, expires){
	var now = new Date();
	now.setDate( now.getDate()+expires );
	document.cookie = key+"="+val+"; expires="+now;
}
//获取cookie
function getCookie(key){
	var cookiestr = document.cookie;
	var list = cookiestr.split("; ");
	for(var attr in list){
		var kv = list[attr].split("=");
		if(kv[0] == key){
			return kv[1];
		}
	}
	return "";
}

/**
元素在页面的绝对位置
*/
function getpageCoord(ele){
	var totalX = 0;
	var totalY = 0;
	totalX += ele.offsetLeft;
	totalY += ele.offsetTop;
	while(ele.offsetParent){
		ele = ele.offsetParent;
		totalX += ele.offsetLeft;
		totalY += ele.offsetTop;
	}
	
	/*
	var obj = {
		x : totalX,
		y : totalY
	}
	*/
	return [totalX, totalY];
}


/**
	获取Style属性，解决兼容  获取非行内样式
*/
function getStyle(ele){
	//如果判断是IE？？
	if(ele.currentStyle){
		return ele.currentStyle;
	} else {
		return getComputedStyle(ele,null); // 非IE获取非行内样式的返回函数 直接调用 
	}
}

/**
	获取该元素的所有元素节点
*/
function getChildElements(ele){
	var newlist = [];
	for(var i=0; i<ele.childNodes.length; i++){
		if( ele.childNodes[i].nodeType == 1){
			newlist.push(ele.childNodes[i]);
		}
	}
	return newlist;
}


/**
	根据指定范围，获取随机整数
*/
function randomInt(min, max){
	return Math.round(Math.random()*(max-min)) + min;
}

function randomColor(){
	var R = randomInt(0,255).toString(16);
	var G = randomInt(0,255).toString(16);
	var B = randomInt(0,255).toString(16);
	
	return "#" + (R.length<2?"0"+R:R) + (G.length<2?"0"+G:G) + (B.length<2?"0"+B:B);
}


/**
	将一个日期对象变成字符串
*/
function date2string(d, sep, yaobuyao){
	sep = sep || "-";
	var str = d.getFullYear()+sep+(d.getMonth()+1)+sep+d.getDate(); 
	if(yaobuyao){
		str += " "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
		return str;
	} else {
		return str;
	}
}

/**
	将一个字符串，变成日期对象
*/
function string2date(str, sep){
	str = str.replace(sep, "-");
	return new Date(str);
}

/**
	计算两个日期之间的差值
*/
function between(start, end, isfix){
	var totalsecs = Math.abs(start.getTime()-end.getTime())/1000;
	return isfix ? Math.round(total/(24*3600)) : total/(24*3600);
}
//between(new Date("2016-10-20"), new Date("2016-10-25"), true)

/**
 定点抛物线
*/
function paowuxian(son,box){//第一个是要运动的元素  第二个是到达的坐标元素
	//曲线方程公式 y=a*x^2(x的2次方)+bx+c(c是曲线和y轴的焦点)  (a是常量正负决定开口方向，大小决定曲率 一般不超过1)
	//这里的x,y是抛物线要过的店的坐标  (是x,y坐标轴里的坐标 不是页面的坐标)，所以用son的坐标-box的初始坐标 得到  x，y相对于坐标系原点的坐标
	//思路  : 先根据已知的son和box的坐标求出公式中的b的值   c设为0  a 是一个常量  得到b以后再根据曲线方程的公式求解  曲线运动的每一个点的坐标
	//这里要注意的是求解b的方程里的X Y是平面坐标系里的X Y 不是页面的坐标
	son.style.margin=0
	box.style.margin=0
	var X=son.offsetLeft-box.offsetLeft
	var Y=son.offsetTop-box.offsetTop
	//console.log(X,Y)
	var tmp1=Math.abs(X)
	var tmp2=Math.abs(Y)
	//console.log(tmp1,tmp2)
	//自定义曲率 
	var a=0.001
	//这里c为0 让抛物线过原点  所以只根据公式求b就可以了
	var b=(tmp2-a*Math.pow(tmp1,2))/tmp1
	//console.log(b)
	//添加定时器
	var x=0
	//获取起点的页面坐标
	var num1=box.offsetLeft  
	var num2=box.offsetTop
	//console.log(num1,num2)
	 son.t=setInterval(function(){
		x+=5
		var y=a*x*x+b*x
		//这里要做一下判断 坐标系有四部分  分别判断一下(x,y)(-x,-y)(-x,y)(x,-y) 四个区域运动轨迹不同   left和top 变化也不同
		if(X>0 && Y>0){
			box.style.left=num1+x+"px"
			box.style.top=num2+y+"px"
		}
		if(X<0 && Y<0){
			box.style.left=num1-x+"px"
			box.style.top=num2-y+"px"
		}
		if(X<0 && Y>0){
			box.style.left=num1-x+"px"
			box.style.top=num2+y+"px"
		}
		if(X>0 && Y<0){
			box.style.left=num1+x+"px"
			box.style.top=num2-y+"px"
		}
		if(x>=tmp1){
			box.style.left=son.offsetLeft+"px"
			box.style.top=son.offsetTop+"px"
			clearInterval(son.t)
		}
	},10)
	 
}
